package com.stars.easyms.rest;

import com.stars.easyms.base.http.EasyMsResponseEntity;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;

/**
 * <p>interfaceName: RestResponseHandler</p>
 * <p>description: 响应处理接口</p>
 *
 * @author guoguifang
 * @version 1.2.1
 * @date 2019-07-11 14:33
 */
public interface RestResponseHandler<T> {

    /**
     * 请求处理成功后封装返回信息
     *
     * @param output 返回参数
     * @return 封装信息
     */
    @NonNull
    EasyMsResponseEntity<T> handleRestResponse(@Nullable T output);

    /**
     * 请求处理异常后封装返回信息
     *
     * @param t      异常信息
     * @return 封装信息
     */
    @NonNull
    EasyMsResponseEntity<T> handleRestResponseWithException(@NonNull Throwable t);

}
